package models.vo
{
	import com.axon.brasil.formatters.CnpjFormatter;
	import com.axon.brasil.formatters.CpfFormatter;
	
	import mx.messaging.AbstractConsumer;
	import mx.utils.StringUtil;
	
	import org.restfulx.models.RxModel;
	
  	[Resource(name="acionistas")]

  	[Bindable]
	public class Acionista extends RxModel
	{
    	public static const LABEL	:	String	= "nome";
    	
    	public var nome				:	String	= "";
    	public var cpfCnpj			:	String	= "";
		public var acoes			:	int		= 0
		public var valorNominal		:	Number	= 0;
		
		[Ignore]
		public var participacao		:	Number	= 0;
		    	
    	[BelongsTo]
    	public var empreendimento	:	Empreendimento;
    	
		//////////////////////////////////////////////////////////////////////////////////////////////////////
		
		public function Acionista()
		{
			super(LABEL);
		}

		//////////////////////////////////////////////////////////////////////////////////////////////////////
		
		public function isPessoaFisica(): Boolean
		{
			return ( StringUtil.trim(cpfCnpj).length == 11 );
		}

		//////////////////////////////////////////////////////////////////////////////////////////////////////
		
		public function descricaoTipo(): String
		{
			return (isPessoaFisica()) ? 'Pessoa Física' : (cpfCnpj == "") ? '' : 'Pessoa Jurídica';
		}

		//////////////////////////////////////////////////////////////////////////////////////////////////////
		
		public function cpfCnpjFormatado(): String
		{
			return (isPessoaFisica()) ? (new CpfFormatter()).format(cpfCnpj) : (cpfCnpj == "") ? '' : (new CnpjFormatter().format(cpfCnpj));
		}
	}
}